package alert

import (
	"main/handlers"
	"net/http"

	"github.com/gin-gonic/gin"
)

// AlertConfirm 处理确认告警的请求
func AlertConfirm(c *gin.Context) {
	// 定义结构体来接收请求体中的数据
	var requestBody struct {
		AlarmConfigId int `json:"alarm_config_id"` // 传入的是告警事件的 ID
	}

	// 解析请求体中的 JSON 数据
	if err := c.ShouldBindJSON(&requestBody); err != nil {
		// 如果解析失败，返回错误信息
		c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request body", "details": err.Error()})
		return
	}

	// 确保 alarm_event_id 不为空或无效
	if requestBody.AlarmConfigId == 0 {
		c.JSON(http.StatusBadRequest, gin.H{"error": "Missing or invalid alarm_event_id"})
		return
	}

	// 更新 SQL 查询
	query := `
		UPDATE alarm_event a 
		SET a.alarm_event_status = 1
		WHERE a.alarm_config_id = ?
	`
	// 执行查询
	_, err := handlers.ExecuteNonQuery(query, requestBody.AlarmConfigId)
	if err != nil {
		// 如果查询执行出错，返回错误信息
		c.JSON(http.StatusInternalServerError, gin.H{"error": "数据库修改状态失败", "details": err.Error()})
		return
	}

	// 返回成功响应
	c.JSON(http.StatusOK, gin.H{"message": "状态确认成功"})
}
